package com.example.chatplatform.service;

import com.example.chatplatform.model.dto.CreateGroupDTO;
import com.example.chatplatform.model.dto.GroupAnmDTO;
import com.example.chatplatform.model.dto.GroupManagerDTO;
import com.example.chatplatform.model.vo.GroupAnmVO;
import com.example.chatplatform.model.vo.GroupDetailVO;
import com.example.chatplatform.model.vo.GroupInformVO;
import com.example.chatplatform.model.vo.GroupMemberVO;

import java.util.List;

public interface GroupService {

    Integer groupAccount(CreateGroupDTO createGroupDTO);

    Integer createGroup(CreateGroupDTO createGroupDTO, String fileUrl);

    List<GroupMemberVO> groupMember(Integer groupId);

    List<GroupAnmVO> groupAnm(Integer groupId);

    boolean addGroupAnm(GroupAnmDTO groupAnmDTO);

    boolean setGroupManager(GroupManagerDTO groupManagerDTO);

    boolean cancelGroupManager(GroupManagerDTO groupManagerDTO);

    boolean removeMember(GroupManagerDTO groupManagerDTO);

    List<GroupInformVO> getGroupInform(Integer userId);

    GroupDetailVO getGroupInfo(Integer userId, Integer groupId);

    boolean joinGroup(GroupManagerDTO groupManagerDTO);

    boolean quitGroup(GroupManagerDTO groupManagerDTO);

    boolean disbandGroup(GroupManagerDTO groupManagerDTO);
}
